
#include "header.h"

void updata(int &v1, int *v2, int **v3)
{
    int t = **v3;
    *v3 = &v1;
    v1 = *v2;
    *v2 = t;
}
#include <map>
#include <string.h>

void test()
{
    map<int, string> m_map;
    m_map[1] = "231";
    m_map[2] = "312";
    m_map[3] = "123";

    for (int i = 0; i < 3; i++) {
        int key1 = i + 1;
        int key2 = i + 2;
        if (key2 > 3) {
            key2 -= 3;
        }
        m_map[m_map[key2].at(i) - 48] = m_map[m_map[key1].at(i) - 48];
    }

    cout << m_map[1].c_str() <<endl
         <<m_map[2].c_str() << endl
         << m_map[3].c_str() << endl;
}


int func1(int x)
{
    int i = 0;
    do {
        i++;
        x = x && (x - 1);
    }while(x);

    return i;
}


int func2(int x)
{
    int i = 0;
    while(x)
    {
        i++;
        x = x & (x - 1);
    }
    return i;
}

int test(char c[])
{

    return sizeof(c);
}

void change(int *a, int &b, int c)
{
    c = *a;
    b = 3;
    *a = 2;
}

char *SayHello()
{
    char *str = "hello";
    return str;
}
